红外热成像仪制作教程micropython【文字版】
邪恶的胖次菌
编辑于 2023年04月18日 23:12

需要相关设备

  • 合宙ESP32C3 (含串口模块的)

  • 合宙ST7735 128x160 LCD

  • GY-MCU90640 

前期准备

准备:合宙ESP32C3

合宙ESP32C3 (含串口模块的)烧录固件 :c3_uart.bin

准备:gy-mcu90640

修改gy-mcu90640的波特率,默认为115200,4HZ,需要修改为460800,8HZ,且修改完断电就可以使用了。

修改GY-MCU90640的串口发射速度和频率

接线参照下面的图

执行下面代码

代码块
JavaScript
自动换行
复制代码
from machine import UART

u=UART(1,rx=8,tx=9,baudrate=115200,rxbuf=1544)


##修改为460800
u.write(b'\xa5\x15\x03\xbd')
# time.sleep(0.22)


##修改为8FPS
u.write(b'\xa5\x25\x04\xce')

#保存,断电重启即可,以后访问GY-MCU90640请把波特率设置为460800,预计120ms可以获得1FPS的数据,本代码中默认设置为150ms拉取一次数据。
u.write(b'\xa5\x65\x01\x0b')
复制成功

执行完毕断电,下次上电就是刚刚你配置的东西了。

接线

接线

若使用合宙的C3,请焊接排母,可以直接插上合宙的1.8寸的ST7735,gy-muc90640可以使用杜邦线连接,整个项目不用复杂的焊接,完成后可以直接用热溶胶粘起来,或者自己手工做个盒子,也可以3D打印一个外壳,总体较为简单。

需要上传的文件

  • main.py 主文件,使用多线程

  • queue.py Queue模块

  • logo.jpg 最下层LOGO文件,若自行生成(可以使用windows的画图生成),分辨率 87x16,若超过显示屏分辨率 会不显示,请谨慎选择分辨率。

工作流程

次线程:串口获取GY-MCU90640的数据1544字节(768点温度数据,最高温度,最低温度,传感器温度)

主线程 获取保存在列队的信息。

对收到的每一帧数据进行处理(双线性插值,伪色转换) 最后在ST7735屏幕上显示数据

若更换成s3速度会快1FPS

视频地址:https://www.bilibili.com/video/BV1AT411s7qh/?vd_source=65608d02f2c75ddf0ea0c90e44eb128f​

项目地址:https://gitee.com/danmu_admin/micropython_ir_camera